//15请使用JavaScript 实现函数:
// javascript
// function sumByType(arr) {
// 参数是一个对象数组，数组中的每个对象有 type: string和value: number两个字段要求把 type 相同的对象合并起来，它们的 value 相加，并将结果数组返回。
// 返回结果的顺序没有关系。
// 举例:
// 参数:[{type: 'a', value: 1}, {type: 'b' value: 2}, {type: 'a', value: 3}, {type: "b', value: 4}]返回: [{type: 'a', value: 4}, {type: 'b', value: 6}] 或[type: 'b', value: 6}, {type: 'a'value: 4}]均可

const arr = [
  { type: "a", value: 1 },
  { type: "b", value: 2 },
  { type: "a", value: 3 },
  { type: "b", value: 4 },
];

function sumByType(arr) {
  // [{type: 'a', value: 4}, {type: 'b', value: 6}]
  const obj = {};
  arr.forEach((item) => {
    if (obj[item.type]) {
      obj[item.type] = {
        ...obj[item.type],
        value: obj[item.type].value + item.value,
      };
    } else {
      obj[item.type] = item;
    }
  });
  // console.log(obj);
  // { a: { type: 'a', value: 4 }, b: { type: 'b', value: 6 } }
  return Object.values(obj);
}

console.log(sumByType(arr));
